let instance = null; // 存储 WebSocket 实例

export function createWebSocket(sid) {
    if (!instance) {
        const url = `ws://192.168.31.17:8080/ws/${encodeURIComponent(sid)}`;
        instance = new WebSocket(url);

        instance.onopen = () => {
            // console.log('WebSocket连接已打开');
        };
			instance.onmessage = (event) => {
				const data = JSON.parse(event.data);
				// 可以在这里处理接收到的消息，调用回调函数等等
				if (messageCallback) {
					messageCallback(data); // 调用回调处理消息
				}
			};

        instance.onerror = (error) => {
            // console.error('WebSocket连接发生错误：', error);
        };

        instance.onclose = () => {
            // console.log('WebSocket连接已关闭');
            instance = null; // 关闭时重置实例
        };
    }
    return instance;
}

let messageCallback = null; // 用于存储消息处理的回调函数

export function onMessage(callback) {
    messageCallback = callback; // 注册消息处理的回调函数
}

export function sendMessage(data) {
    if (instance && instance.readyState === WebSocket.OPEN) {
        instance.send(JSON.stringify(data));
    } 
	// else {
 //        console.error('WebSocket未连接，无法发送消息');
 //    }
}

export function disconnectWebSocket() {
    if (instance) {
        instance.close();
        instance = null; // 关闭时重置实例
        // console.log('WebSocket连接已关闭');
    } 
	// else {
 //        console.warn('WebSocket尚未连接');
 //    }
}
